<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of home
 *
 * @author Rodrigo
 */
class home extends CI_Controller{
    
    function __construct() {
        parent::__construct();
         $this->load->helper(array('form', 'url'));
    }
    
    //exibir a página inicial de login e cadastro
    function index(){       
        //verifica o status do usuário
        $this->load->model("conta_model");        
        if($this->conta_model->logado()){
            //se estiver logado redirecinar para postagens
            redirect("index.php/postagem");
        }else{
            //senão exibir a página de login e cadastro
            $this->load->view('include/header');
            $this->load->view('include/menu_home');
            $this->load->view('home/index');
            $this->load->view('include/footer');            
        }       
    }
    
    function login(){   
        //validando dados de cadastro
	$this->load->library('form_validation');
        //setando regras de validação        
        $this->form_validation->set_rules('loginl', 'Login', 'trim|required');
        $this->form_validation->set_rules('senhal', 'Senha', 'required|callback_valida_login');        
                
        //setando mensagem de validação para campos obrigatórios        
        $this->form_validation->set_message('required','O campo %s é obrigatório.');
        
        //verificar se o usuário é válido
         if ($this->form_validation->run() == TRUE){   
             
             $this->load->model("conta_model");
             $conta = $this->conta_model->getContaByLogin($this->input->post('loginl'));
             
            //cria sessão de usuário
            $this->load->library('session');         
            $this->session->set_userdata(
                    array('usuario' => $this->input->post('loginl'),
                          'logado' => true,
                          'ContaID' => $conta[0]->ContaID,
                          'Nome' => $conta[0]->Nome,
                          'Foto' => $conta[0]->Foto));  
            
            //redireciona para a página de postagens
            redirect("index.php/postagem");            
        }else{
           redirect('/');
        }        
    }    
    
    function valida_login($str){
        $login = $this->input->post('loginl');
        $senha = $this->input->post('senhal');
        $this->load->library('session');
        
         $this->load->model("conta_model");
         if($this->conta_model->autenticar($login,$senha)){
            return true;             
         }else{
             $this->session->set_flashdata('message','Login ou senha inexistente.');
             $this->session->set_flashdata('login',$this->input->post('loginl'));
             return false;
         }
    }
    
    function criarConta(){
        
        //validando dados de cadastro
	$this->load->library(array('form_validation','session'));
        //setando regras de validação        
        $this->form_validation->set_rules('nome', 'Nome', 'trim|required|xss_clean');
        $this->form_validation->set_rules('login', 'Login', 'trim|required|callback_login_valida');
        $this->form_validation->set_rules('senha', 'Senha', 'required');
        $this->form_validation->set_rules('nascimento', 'Nascimento', 'required');
        $this->form_validation->set_rules('genero', 'Género', 'required');
        //setando mensagem de validação para campos obrigatórios        
        $this->form_validation->set_message('required','O campo %s é obrigatório.');
        
        //validando formulário
        if ($this->form_validation->run() == FALSE) {
            //se não validar
            $this->load->view('include/header');
            $this->load->view('include/menu_home');
            $this->load->view('home/index');
            $this->load->view('include/footer');
            
        } else {
            
            //pegar dados do formulário
            $conta['Nome'] = $this->input->post('nome');
            $conta['Login'] = $this->input->post('login');
            $conta['Senha'] = $this->input->post('senha');
            $conta['Nascimento'] = $this->input->post('nascimento');
            $conta['Genero'] = $this->input->post('genero');
            $conta['Ativo'] = true;

            //se formulário for válido criar conta no banco
            $this->load->model("conta_model");
            if ($this->conta_model->CriarConta($conta)) {
                 $this->session->set_flashdata('cadastroSucesso','Conta criada com sucesso, '
                         . 'faça login para começar a usar sua conta.');                
               redirect("/");
            } else {
                $this->session->set_flashdata('erroCadastro','Erro ao criar a conta.');
               redirect("/");
            }
        }
    }
    
    //validar login
    function login_valida($login) {
        
        $this->load->model("conta_model");
        
        //verificar se o login já está cadastrado
        if ($this->conta_model->BuscarUsuarioPorLogin($login)) {
            //seta a mensagem de validação
            $this->form_validation->set_message('login_valida', 'O %s já está sendo usado.');
            return false;
        } else {
            return true;
        }
    }
    
}
